// noinspection JSUnresolvedReference
/**
* Field Google Map
*/
/* global jQuery, document, redux_change, redux, google */
(function ( $ ) {
'use strict';
redux.field_objects = redux.field_objects || {};
redux.field_objects.google_maps = redux.field_objects.google_maps || {};
/* LIBRARY INIT */
redux.field_objects.google_maps.init = function ( selector ) {
if ( ! selector ) {
selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' );
}
$( selector ).each(
function ( i ) {
let delayRender;
const el = $( this );
let parent = el;
if ( ! el.hasClass( 'redux-field-container' ) ) {
parent = el.parents( '.redux-field-container:first' );
}
if ( parent.is( ':hidden' ) ) {
return;
}
if ( parent.hasClass( 'redux-field-init' ) ) {
parent.removeClass( 'redux-field-init' );
} else {
return;
}
// Check for delay render, which is useful for calling a map
// render after JavaScript load.
delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) );
// API Key button.
redux.field_objects.google_maps.clickHandler( el );
// Init our maps.
redux.field_objects.google_maps.initMap( el, i, delayRender );
}
);
};
/* INIT MAP FUNCTION */
redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) {
let delayed;
let scrollWheel;
let streetView;
let mapType;
let address;
let defLat;
let defLong;
let defaultZoom;
let mapOptions;
let geocoder;
let g_autoComplete;
let g_LatLng;
let g_map;
let noLatLng = false;
// Pull the map class.
const mapClass = el.find( '.redux_framework_google_maps' );
const containerID = mapClass.attr( 'id' );
const autocomplete = containerID + '_autocomplete';
const canvas = containerID + '_map_canvas';
const canvasId = $( '#' + canvas );
const latitude = containerID + '_latitude';
const longitude = containerID + '_longitude';
// Add map index to data attr.
// Why, say we want to use delay_render,
// and want to init the map later on.
// You'd need the index number in the
// event of multiple map instances.
// This allows one to retrieve it
// later.
$( mapClass ).attr( 'data-idx', idx );
if ( true === delayRender ) {
return;
}
// Map has been rendered, no need to process again.
if ( $( '#' + containerID ).hasClass( 'rendered' ) ) {
return;
}
// If a map is set to delay render and has been initiated
// from another scrip, add the 'render' class so rendering
// does not occur.
// It messes things up.
delayed = Boolean( mapClass.data( 'delay-render' ) );
if ( true === delayed ) {
mapClass.addClass( 'rendered' );
}
// Create the autocomplete object, restricting the search
// to geographical location types.
g_autoComplete = await google.maps.importLibrary( 'places' );
g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} );
// Data bindings.
scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) );
streetView = Boolean( mapClass.data( 'street-view' ) );
mapType = Boolean( mapClass.data( 'map-type' ) );
address = mapClass.data( 'address' );
address = decodeURIComponent( address );
address = address.trim();
// Set default Lat/lng.
defLat = canvasId.data( 'default-lat' );
defLong = canvasId.data( 'default-long' );
defaultZoom = canvasId.data( 'default-zoom' );
// Eval whether to set maps based on lat/lng or address.
if ( '' !== address ) {
if ( '' === defLat || '' === defLong ) {
noLatLng = true;
}
} else {
noLatLng = false;
}
// Can't have empty values, or the map API will complain.
// Set default for the middle of the United States.
defLat = defLat ? defLat : 39.11676722061108;
defLong = defLong ? defLong : -100.47761000000003;
if ( noLatLng ) {
// If displaying a map based on an address.
geocoder = new google.maps.Geocoder();
// Set up Geocode and pass address.
geocoder.geocode(
{'address': address},
function ( results, status ) {
let latitude;
let longitude;
// Function results.
if ( status === google.maps.GeocoderStatus.OK ) {
// A good address was passed.
g_LatLng = results[0].geometry.location;
// Set map options.
mapOptions = {
center: g_LatLng,
zoom: defaultZoom,
streetViewControl: streetView,
mapTypeControl: mapType,
scrollwheel: scrollWheel,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapId: 'REDUX_GOOGLE_MAPS',
};
// Create map.
g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions );
// Get and set lat/long data.
latitude = el.find( '#' + containerID + '_latitude' );
latitude.val( results[0].geometry.location.lat() );
longitude = el.find( '#' + containerID + '_longitude' );
longitude.val( results[0].geometry.location.lng() );
redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID );
} else {
// No data found, alert the user.
alert( 'Geocode was not successful for the following reason: ' + status );
}
}
);
} else {
// If displaying map based on an lat/lng.
g_LatLng = new google.maps.LatLng( defLat, defLong );
// Set map options.
mapOptions = {
center: g_LatLng,
zoom: defaultZoom, // Start off far unless an item is selected, set by php.
streetViewControl: streetView,
mapTypeControl: mapType,
scrollwheel: scrollWheel,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapId: 'REDUX_GOOGLE_MAPS',
};
// Create the map.
g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions );
redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID );
}
};
redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) {
let markerTooltip;
let infoWindow;
let g_marker;
let geoAlert = mapClass.data( 'geo-alert' );
// Get HTML.
const input = document.getElementById( autocomplete );
// Set objects into the map.
g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input );
// Bind objects to the map.
g_autoComplete = new google.maps.places.Autocomplete( input );
g_autoComplete.bindTo( 'bounds', g_map );
// Get the marker tooltip data.
markerTooltip = mapClass.data( 'marker-tooltip' );
markerTooltip = decodeURIComponent( markerTooltip );
// Create infoWindow.
infoWindow = new google.maps.InfoWindow();
// Create marker.
g_marker = new google.maps.Marker(
{
position: g_LatLng,
map: g_map,
anchorPoint: new google.maps.Point( 0, - 29 ),
draggable: true,
title: markerTooltip,
animation: google.maps.Animation.DROP
}
);
geoAlert = decodeURIComponent( geoAlert );
// Place change.
google.maps.event.addListener(
g_autoComplete,
'place_changed',
function () {
let place;
let address;
let markerTooltip;
infoWindow.close();
// Get place data.
place = g_autoComplete.getPlace();
// Display alert if something went wrong.
if ( ! place.geometry ) {
window.alert( geoAlert );
return;
}
console.log( place.geometry.viewport );
// If the place has a geometry, then present it on a map.
if ( place.geometry.viewport ) {
g_map.fitBounds( place.geometry.viewport );
} else {
g_map.setCenter( place.geometry.location );
g_map.setZoom( 17 ); // Why 17? Because it looks good.
}
markerTooltip = mapClass.data( 'marker-tooltip' );
markerTooltip = decodeURIComponent( markerTooltip );
// Set the marker icon.
g_marker = new google.maps.Marker(
{
position: g_LatLng,
map: g_map,
anchorPoint: new google.maps.Point( 0, - 29 ),
title: markerTooltip,
clickable: true,
draggable: true,
animation: google.maps.Animation.DROP
}
);
// Set marker position and display.
g_marker.setPosition( place.geometry.location );
g_marker.setVisible( true );
// Form array of address components.
address = '';
if ( place.address_components ) {
address = [( place.address_components[0] && place.address_components[0].short_name || '' ),
( place.address_components[1] && place.address_components[1].short_name || '' ),
( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' );
}
// Set the default marker info window with address data.
infoWindow.setContent( '
' + place.name + ' ' + address );
infoWindow.open( g_map, g_marker );
// Run Geolocation.
redux.field_objects.google_maps.geoLocate( g_autoComplete );
// Fill in address inputs.
redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete );
}
);
// Marker drag.
google.maps.event.addListener(
g_marker,
'drag',
function ( event ) {
document.getElementById( latitude ).value = event.latLng.lat();
document.getElementById( longitude ).value = event.latLng.lng();
}
);
// End marker drag.
google.maps.event.addListener(
g_marker,
'dragend',
function () {
redux_change( el.find( '.redux_framework_google_maps' ) );
}
);
// Zoom Changed.
g_map.addListener(
'zoom_changed',
function () {
el.find( '.google_m_zoom_input' ).val( g_map.getZoom() );
}
);
// Marker Info Window.
infoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(
g_marker,
'click',
function () {
const marker_info = containerID + '_marker_info';
const infoValue = document.getElementById( marker_info ).value;
if ( '' !== infoValue ) {
infoWindow.setContent( infoValue );
infoWindow.open( g_map, g_marker );
}
}
);
};
/* FILL IN ADDRESS FUNCTION */
redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) {
// Set variables.
const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' );
// What if someone only wants city, or state, ect...
// gotta do it this way to check for the address!
// Need to check each of the returned components to see what is returned.
const componentForm = {
street_number: 'short_name',
route: 'long_name',
locality: 'long_name',
administrative_area_level_1: 'short_name',
country: 'long_name',
postal_code: 'short_name'
};
// Get the place details from the autocomplete object.
const place = g_autoComplete.getPlace();
let component;
let i;
let addressType;
let _d_addressType;
let val;
let len;
document.getElementById( latitude ).value = place.geometry.location.lat();
document.getElementById( longitude ).value = place.geometry.location.lng();
for ( component in componentForm ) {
if ( componentForm.hasOwnProperty( component ) ) {
// Push in the dynamic form element ID again.
component = containerID + '_' + component;
// Assign to proper place.
document.getElementById( component ).value = '';
document.getElementById( component ).disabled = false;
}
}
// Get each component of the address from the place details
// and fill the corresponding field on the form.
len = place.address_components.length;
for ( i = 0; i < len; i += 1 ) {
addressType = place.address_components[i].types[0];
if ( componentForm[addressType] ) {
// Push in the dynamic form element ID again.
_d_addressType = containerID + '_' + addressType;
// Get the original.
val = place.address_components[i][componentForm[addressType]];
// Assign to proper place.
document.getElementById( _d_addressType ).value = val;
}
}
};
redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) {
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(
function ( position ) {
const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude );
const circle = new google.maps.Circle(
{
center: geolocation,
radius: position.coords.accuracy
}
);
g_autoComplete.setBounds( circle.getBounds() );
}
);
}
};
/* API BUTTON CLICK HANDLER */
redux.field_objects.google_maps.clickHandler = function ( el ) {
// Find the API Key button and react on click.
el.find( '.google_m_api_key_button' ).on(
'click',
function () {
// Find message wrapper.
const wrapper = el.find( '.google_m_api_key_wrapper' );
if ( wrapper.is( ':visible' ) ) {
// If the wrapper is visible, close it.
wrapper.slideUp(
'fast',
function () {
el.find( '#google_m_api_key_input' ).trigger( 'focus' );
}
);
} else {
// If the wrapper is visible, open it.
wrapper.slideDown(
'medium',
function () {
el.find( '#google_m_api_key_input' ).trigger( 'focus' );
}
);
}
}
);
el.find( '.google_m_autocomplete' ).on(
'keypress',
function ( e ) {
if ( 13 === e.keyCode ) {
e.preventDefault();
}
}
);
// Auto select autocomplete contents,
// since Google doesn't do this inherently.
el.find( '.google_m_autocomplete' ).on(
'click',
function ( e ) {
$( this ).trigger( 'focus' );
$( this ).trigger( 'select' );
e.preventDefault();
}
);
};
} )( jQuery );
Jouez au Casino Frumzi Connexion et Découvrez une Expérience de Jeu en Ligne Inoubliable en France – Orchid Group Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54
Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54
Comprendre les Règles de Base de Frumzi Casino pour une Expérience de Jeu Réussie en France
Pour une expérience de jeu réussie sur Frumzi Casino en France, il est crucial de comprendre les règles de base. Tout d’abord, assurez-vous de connaître les règles de chaque jeu auquel vous souhaitez jouer. Ensuite, familiarisez-vous avec les limites de mise et les options de paiement. N’oubliez pas de vérifier les exigences de mise pour les bonus, car elles peuvent varier. De plus, assurez-vous de comprendre les règles de fair-play et de sécurité du casino. Enfin, n’oubliez pas de jouer de manière responsable et de vous fixer des limites de temps et d’argent. En suivant ces règles de base, vous pouvez vous assurer une expérience de jeu agréable et sécurisée sur Frumzi Casino en France.
Découvrez les Jeux de Casino les Plus Populaires sur Frumzi Connexion en France
Découvrez les Jeux de Casino les Plus Populaires sur Frumzi Connexion en France. Plongez dans l’univers captivant des casinos en ligne et découvrez une sélection de jeux qui ont conquis le cœur des joueurs français.
1. La Roulette : un classique indémodable qui allie chance et stratégie.
2. Le Blackjack : défiez le croupier et atteignez la perfection avec 21.
3. Les Machines à Sous : tentez votre chance sur des milliers de slots aux thèmes variés.
4. Le Baccarat : un jeu de cartes sophistiqué aux règles simples.
5. Le Poker : affrontez d’autres joueurs dans des tournois palpitants.
6. Le Craps : lancez les dés et laissez la chance décider de votre sort.
7. Le Vidéo Poker : combinez le plaisir du poker et des machines à sous.
Les Avantages de Jouer au Casino Frumzi Connexion en Ligne en France
Si vous êtes à la recherche d’une expérience de casino en ligne de premier ordre en France, ne cherchez pas plus loin que Frumzi Connexion. Voici les avantages de jouer sur Frumzi Connexion :
1. Une large sélection de jeux de casino en ligne, y compris les machines à sous, la roulette, le blackjack et le poker.
2. Des bonus et des promotions exclusifs pour les joueurs français.
3. Un site web sécurisé et fiable, avec une licence de jeu en ligne valide.
4. Un service clientèle disponible 24h/24 et 7j/7 pour répondre à toutes vos questions.
5. Des options de paiement pratiques et sécurisées, y compris les cartes de crédit, les portefeuilles électroniques et les virements bancaires.
6. La possibilité de jouer depuis n’importe où, grâce à la version mobile du casino.
7. Une expérience de jeu immersive et divertissante, avec des graphismes de haute qualité et des effets sonores réalistes.
Comment Créer un Compte et Commencer à Jouer sur Frumzi Connexion en France
Vous souhaitez créer un compte et commencer à jouer sur Frumzi en France ? Voici les étapes à suivre :
1. Rendez-vous sur la page de connexion de Frumzi et cliquez sur “S’inscrire”.
2. Remplissez le formulaire d’inscription avec vos informations personnelles.
3. Choisissez un nom d’utilisateur et un mot de passe sécurisés.
4. Confirmez votre adresse e-mail en cliquant sur le lien envoyé dans votre boîte de réception.
5. Connectez-vous à votre compte Frumzi en utilisant vos identifiants.
6. Faites un dépôt en utilisant l’une des méthodes de paiement proposées.
7. Parcourez la sélection de jeux et commencez à jouer !
Les Meilleures Stratégies pour Gagner aux Jeux de Casino sur Frumzi Connexion en France
Si vous êtes à la recherche des meilleures stratégies pour gagner aux jeux de casino en France, vous êtes au bon endroit. Tout d’abord, il est crucial de comprendre les règles et les probabilités de chaque jeu. Ensuite, gérez votre budget de manière responsable et évitez de parier plus que ce que vous pouvez vous permettre de perdre. Pour les jeux de table, maîtrisez les stratégies de base du blackjack et de la roulette. Dans les machines à sous, recherchez les jeux avec un taux de redistribution élevé. N’oubliez pas de profiter des bonus et promotions offerts par les casinos en ligne comme Frumzi Connexion. Enfin, restez toujours maître de vos émotions et ne laissez pas la fièvre du jeu vous submerger. Bonne chance!
Comment Effectuer des Dépôts et Retraits en Toute Sécurité sur Frumzi Connexion en France
Vous cherchez à effectuer des dépôts et retraits en toute sécurité sur Frumzi en France ? Voici 7 conseils à suivre : 1. Choisissez une méthode de paiement fiable et reconnue.
2. Vérifiez que le casino en ligne Frumzi dispose d’une licence de jeu en France.
3. Utilisez une connexion sécurisée pour accéder à votre compte Frumzi.
4. Ne partagez jamais vos informations de connexion ou de paiement avec qui que ce soit.
5. Vérifiez toujours le montant et la devise avant de confirmer un dépôt ou un retrait.
6. Contactez le service clientèle Frumzi en frumzi casino cas de doute ou de problème.
7. Gardez une trace de toutes vos transactions Frumzi pour votre propre sécurité financière.
En suivant ces conseils, vous pouvez profiter de l’excitation de jouer sur Frumzi tout en protégeant vos informations personnelles et financières.
Vous vous demandez sûrement comment vous connecter et jouer sur Casino Frumzi ? La connexion est facile et rapide, il vous suffit de créer un compte en quelques minutes.
Une fois connecté, découvrez une expérience de jeu en ligne inoubliable en France avec une large sélection de jeux de casino disponibles.
Vous avez des questions sur le processus de connexion ou sur les jeux proposés ? Consultez notre FAQ pour trouver toutes les réponses à vos questions.
Ne manquez pas l’opportunité de vivre une expérience de jeu unique en son genre sur Casino Frumzi, réservez dès maintenant votre place pour rejoindre la communauté des joueurs en ligne en France.
Alors, n’hésitez plus et jouez dès maintenant sur Casino Frumzi pour découvrir une expérience de jeu en ligne inoubliable en France !